package com.start.shop.modules.service;

import java.math.BigDecimal;

import com.github.pagehelper.PageInfo;
import com.start.shop.modules.repository.entity.Coupon;
import com.start.shop.modules.repository.entity.CouponConfig;



public interface ICouponService {
	/**
	 * 核销优惠券
	 */
	public CouponConfig writeOffCoupon(int userId, int couponId, BigDecimal orderAmt, int goodsId, int goodsType);
	
	/**
	 * 更新优惠券状态
	 */
	 
	void updateCouponStatusByCouponId(int userId, int couponId, String status);

	/**
	 * 新增优惠券
	 */
	public void issueCoupon(Coupon coupon);
	
	/**
	 * 检查优惠券是否可用
	 */
	public boolean checkCouponCanUse(int sortId, BigDecimal orderAmt, int goodsId, int goodsType);
	
	/**
	 * 检查优惠券并将已过期状态进行设置 前1000条
	 */
	public int checkExpireCoupon();

	/**
	 * 根据状态查询优惠券
	 */
	public PageInfo<Coupon> getCouponsByStatus(int userId, int status, int pageNum, int pageSize);

	/**
	 * 查找可用的优惠券
	 */
	PageInfo<Coupon> getUseableCoupon(int userId, BigDecimal orderAmt, int goodsId, int goodsType, int pageNum, int pageSize);
	
	/**
	 * 查找可用的优惠券
	 */
	PageInfo<Coupon> getDisableCoupon(int userId, BigDecimal orderAmt, int goodsId, int goodsType, int pageNum, int pageSize);
	
	
}

